This invention relates to the field of software systems testing. More particularly, the present invention relates to a method and system for using an automated net booting mechanism for testing a multiplicity of images of a software system in a multiplicity of different platforms in a highly efficient manner.
Typically in a large software development project, many programmers or programming groups work in conjunction with one another to develop a single piece of software. Moreover, in today""s distributed environment, using local area networks (LAN) as well as wide area networks (WAN), these various programmers and programming groups may be spread around the world.
In today""s hectic technology environment, software developers rush to get original product releases to market, followed by the inevitable xe2x80x9cbug-fixxe2x80x9d revisions, new feature releases, and extensive upgrades in a never ending cycle. Extensive use of Object Oriented Programming (OOP) techniques have added several levels of complexity to the configuration management task. Some large hardware companies, whose product sales are dependent on related software supporting new hardware features, add an additional pressure on software developers to rapidly modify existing software and produce new feature releases. Such shorter release cycles increase the need for development groups to engage in parallel development. However dividing project efforts among multiple developers or teams can lead to problems with software integration, reoccurring bugs, and lost changes. In such an environment of complex software, multiple platforms, globally dispersed development groups, the need for automating the control of new system development testing and building of related system images has become a necessity for survival.
Moreover, to satisfy the differing requirements of different customers in the exploding telecommunications market, it is required for manufacturers of network switches and routers as well as other devices to offer different operating system images containing different platform specific capabilities as well as different non-platform-specific features and protocols. Businesses which manage Internet and Intranet networks are constantly seeking less expensive equipment such as switches, routers, servers and client terminals. Such demands for less expensive equipment drives manufacturers to constantly create new and more desirable platforms. At the same time many of these businesses are simultaneously seeking new features which are platform independent to accommodate the exploding demands of their customers. Such demands include desires for more bandwidth, faster transmission protocols, more content security features such as cryptographic protocols, etc., etc. At the same time these businesses do not desire to pay for features which they do not need or want if at all possible. To accommodate such requirements, systems manufacturers develop xe2x80x9cproductsxe2x80x9d which contain separate combinations of such non-platform-specific features, which sell for various prices and which users can select for their particular platforms.
Such demands for new hardware platforms and new telecommunications features have led telecommunications systems suppliers such as Cisco Systems, Inc.(trademark) (the assignee of the present invention) as well as others, to develop a sales strategy which dictates frequent releases of new hardware platforms and new feature software. This process places enormous pressure on the software developers to design, code and test new software to support the new hardware platforms and the new features, including protocols, and other special system features. All of these new software capabilities must ultimately be folded into the common Internetworking Operating System (IOS) which runs on all of the applicants switches and routers. Such demands can result in hundreds of new system images which result from a new version release and which must be tested prior to release to the customers. That is applicant may support 30 or 40 platforms with 10 or more feature packages for each platform.
The technical problem addressed by the current invention relates to this issue of how to efficiently perform the final booting test of the new images of an operating system which contains new code for new hardware platforms, for various combinations of non-hardware-specific new features, and bug-fixes, wherein the images which are to be boot tested number in the hundreds and wherein such boot testing must be completed as rapidly and as efficiently as possible.
There is a need in the art for a method and system for orderly and efficient boot testing of a multiplicity of operating system images in a matter of hours as opposed to days. This becomes especially critical in a system wherein release of new versions of software occurs frequently (as often as every 8 weeks), and wherein the new versions contain code of the highest quality for a multiplicity of hardware platforms and a multiplicity of non-platform specific new features resulting in hundreds of different combinations of platform and feature sets to be tested.
The present invention provides a solution to the needs described above through a system and method of using highly structured net boot testing through an automated process that produces a highly efficient assurance that each image of a new version of an operating system can operate on any designated platform with any combinations of designated non-platform-specific feature sets and can be boot loaded via the Internet. The program images being boot tested have previously undergone functional program testing, regression testing, final test and fix procedures and commit procedures at the levels of the business unit, at an intermediate pre-integration branch level and finally at a primary technology branch of the current IOS source code system before final system boot load testing is performed as an antecedent to a regular release of a new version of the IOS.
A system is disclosed for providing net boot testing of multiple images of early deployment releases of a software system, the early deployment releases containing support for new features and platforms. Each image is boot load tested for the specific platform for which it is intended.
A method is disclosed for a net boot testing process wherein a list of program images to be tested is selected along with a list of available test platforms to use in testing the images, and wherein the individual images are boot load tested via the Internet against their specified platform devices.
Still other embodiments of the present invention will become apparent to those skilled in the art from the following detailed description, wherein is shown and described only the embodiments of the invention by way of illustration of the best modes contemplated for carrying out the invention. As will be realized, the invention is capable of modification in various obvious aspects, all without departing from the spirit and scope of the present invention. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not restrictive.